package com.xzzz.common.iaas;


import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.InputStream;

public interface OSManager {

    IaasProperties getProp();

    /**
     * 获取默认的上传路径, 不以 / 结尾
     *
     * @return 上传路径
     */
    String getDefaultPath();

    /**
     * 获取访问地址, 不以 / 结尾
     *
     * @return 访问地址
     */
    String getDomain();

    /**
     * 上传文件
     *
     * @param filename    文件名
     * @param inputStream 输入流
     */
    String put(String filename, InputStream inputStream);

    /**
     * 上传文件
     *
     * @param filename 文件名
     * @param file     springboot 文件
     */
    String put(String filename, MultipartFile file);

    /**
     * 获取文件
     *
     * @param filename 文件名
     */
    default File get(String filename) {
        return null;
    }

    /**
     * 删除文件
     *
     * @param filename 文件名
     * @return 是否删除
     */
    boolean delete(String filename);
}
